Считываем обучающие данные. Описание формата: В файле train.csv содержится информация для построения модели. Формат строк: признаки (x0, …, x61) и целевая переменная — y.
## x0 x1 x2 x3 x4 x5 x9 x10 x11 x12 x14 x15 x16 x17 x18
## 86 16 3 3 6 7 8 1850 5 8 40 3 11 85 3351
## x19 x20 x21 x22
## 14 87 4237 9
В таблице выше показано количество уникальных значений для категорийных переменных. Видим, что некоторые категорийные переменные содержат много категорий, что может затруднять процесс вставки пустых значений (imputation).
Целевую переменную (возрастнаю группа) оформляем как упорядоченную категорийную переменную (фактор).
##
## 0 1 2 3 4 5 6
## 361 1964 15774 14677 10012 5419 1793
Целевая переменная “Возрастная группа” содержит неравномерное распределение количества значений по группам. Видимо, группа 1 соответствет младшему возрасту, а группа 6 наиболе старшему, поэтому большее количество абонентов имеет группы 2, 3 и 4.
Обучающая выборка содержит 50000 строк. Посмотрим на данные в целом.
## x0 x1 x2
## aa2f3cd34a:13090 16a14a2d17:48103 06330986ed:48145
## cc73658409: 3006 bb32cb60e5: 828 9734efb986: 1383
## 467f9617a3: 1588 25e525f46c: 257 NA's : 472
## 65d757ad7d: 1523 9ea7cf5e79: 149
## bfff7d2d9e: 1523 16093c492a: 121
## (Other) :28750 (Other) : 42
## NA's : 520 NA's : 500
## x3 x4 x5 x6
## 47732ccfc1: 419 16f4c50b5f: 975 1746600cb0:47980 Min. :0.000
## ca63304de0:49085 2351e56e34: 233 4c9789a227: 371 1st Qu.:1.000
## NA's : 496 8aa82606c6: 611 4f10e28b30: 949 Median :1.000
## a62168d626:19042 727084d214: 115 Mean :0.993
## b7584c2d52:28653 e8a1d68de6: 13 3rd Qu.:1.000
## NA's : 486 f81c7829f9: 62 Max. :1.000
## NA's : 510
## x7 x8 x9 x10
## Min. :0.0000 Min. :-85.2524 f67f142e40:16313 37eee1916c: 1074
## 1st Qu.:1.0000 1st Qu.: -0.2555 5624b8f759: 7189 abf7f8e744: 900
## Median :1.0000 Median : 0.2210 fc150fd13a: 6844 ff3ea89708: 801
## Mean :0.9759 Mean : -0.0003 7e5c97705a: 6366 2b1a0a7c41: 784
## 3rd Qu.:1.0000 3rd Qu.: 0.5676 7b1f0ca4c1: 5527 7bfe5c2f5a: 593
## Max. :1.0000 Max. : 3.4268 (Other) : 5403 (Other) :40911
## NA's :1207 NA's : 2358 NA's : 4937
## x11 x12 x13 x14
## 3d5b1dc69c: 4787 e33c63cf35:26098 Min. : -99 6e40247e69:22725
## 669ea3d319:13426 b38690945d:10372 1st Qu.: 0 d3e6da1933: 9576
## 91bb549494:26401 02d630ac05: 4089 Median : 1817 ff390c211c: 6346
## a68935eb94: 475 f178803074: 3700 Mean : 4429 fe8fb80553: 3537
## NA's : 4911 eed26e93c5: 367 3rd Qu.: 5582 cc69cbe29a: 2007
## (Other) : 396 Max. :776759 (Other) : 3447
## NA's : 4978 NA's :4488 NA's : 2362
## x15 x16 x17
## 617a4ad3f9:42737 718c61545b:39729 c26d08129a:12123
## eeaf83a4de: 4896 4b9480aa42: 3959 759d42196b: 5023
## NA's : 2367 68c96d06ae: 1755 113669f37a: 3594
## e8a040423a: 982 c660b9c4b6: 2790
## d82be38be0: 741 e84655292c: 2711
## (Other) : 504 (Other) :21409
## NA's : 2330 NA's : 2350
## x18 x19 x20
## cac4fc8eaf: 2272 dd9c9e0da2:18912 17c99905b6:17190
## 9e166b965d: 1353 dbcd5e9d6c:10197 60299bc448: 4859
## 8ff9e52879: 1231 199ce7c484: 6634 fde72a6d5c: 4454
## 28e6a6b9f5: 1080 466f8951b0: 4458 9bcecf7346: 2065
## 969b7983fb: 1045 8a6c8cef83: 3021 8945099f3b: 1860
## (Other) :40673 (Other) : 4423 (Other) :17233
## NA's : 2346 NA's : 2355 NA's : 2339
## x21 x22 x23 x24
## 64ebc0a062: 1149 9aba4d7f51:47239 Min. : 15.23 Min. :-1.3105
## e3c03ca55c: 707 790c3ac467: 200 1st Qu.: 30.79 1st Qu.:-0.6062
## 0fc56ea1f0: 615 00b4980fc2: 88 Median : 36.60 Median :-0.2395
## c6b4ad548f: 528 881ff36a41: 52 Mean : 35.96 Mean :-0.0064
## b1407db9a8: 489 577a4c1ebe: 43 3rd Qu.: 41.10 3rd Qu.: 0.2849
## (Other) :44134 (Other) : 15 Max. :135.06 Max. :34.8992
## NA's : 2378 NA's : 2363 NA's :1878 NA's :1878
## x25 x26 x27 x28
## Min. :-0.8170 Min. : 0.000 Min. :-0.7920 Min. :-0.9084
## 1st Qu.:-0.5407 1st Qu.: 1.333 1st Qu.:-0.4980 1st Qu.:-0.5588
## Median :-0.2238 Median : 2.833 Median :-0.3003 Median :-0.2670
## Mean :-0.0052 Mean : 3.653 Mean : 0.0068 Mean : 0.0021
## 3rd Qu.: 0.2423 3rd Qu.: 5.000 3rd Qu.: 0.1338 3rd Qu.: 0.2461
## Max. :38.1469 Max. :59.833 Max. :28.8142 Max. :32.6999
## NA's :1878 NA's :1878 NA's :1878 NA's :1878
## x29 x30 x31 x32
## Min. : 0.000 Min. : 0.0 Min. :-170.42 Min. :0.0000
## 1st Qu.: 1.667 1st Qu.: 0.0 1st Qu.: 0.00 1st Qu.:0.0000
## Median : 10.833 Median : 1.0 Median : 28.00 Median :0.0000
## Mean : 42.404 Mean : 579.9 Mean : 43.26 Mean :0.3896
## 3rd Qu.: 39.833 3rd Qu.: 440.3 3rd Qu.: 62.00 3rd Qu.:0.5000
## Max. :9124.000 Max. :64305.0 Max. :1512.00 Max. :6.0000
## NA's :1878 NA's :1878 NA's :1878 NA's :1878
## x33 x34 x35 x36
## Min. : 0.00 Min. :0.0000 Min. :0.0000 Min. : 0.000
## 1st Qu.: 6.00 1st Qu.:0.0000 1st Qu.:0.0000 1st Qu.: 2.000
## Median :12.00 Median :0.0000 Median :0.0000 Median : 3.000
## Mean :12.78 Mean :0.4374 Mean :0.2772 Mean : 3.571
## 3rd Qu.:18.00 3rd Qu.:1.0000 3rd Qu.:0.5000 3rd Qu.: 5.000
## Max. :76.00 Max. :1.0000 Max. :1.0000 Max. :75.000
## NA's :1878 NA's :1878 NA's :1878 NA's :1878
## x37 x38 x39 x40
## Min. : 0.00 Min. : 0.0000 Min. : 0.000 Min. : 0.00
## 1st Qu.: 17.00 1st Qu.: 0.0000 1st Qu.: 1.000 1st Qu.: 19.00
## Median : 33.00 Median : 0.0000 Median : 2.000 Median : 29.00
## Mean : 49.57 Mean : 0.7708 Mean : 2.463 Mean : 34.22
## 3rd Qu.: 61.00 3rd Qu.: 1.0000 3rd Qu.: 3.000 3rd Qu.: 43.00
## Max. :1724.00 Max. :364.0000 Max. :50.000 Max. :1110.00
## NA's :1878 NA's :1878 NA's :1878 NA's :5608
## x41 x42 x43 x44
## Min. : 0.080 Min. :0.000 Min. : 0.000 Min. : 0.00
## 1st Qu.: 3.580 1st Qu.:0.120 1st Qu.: 0.387 1st Qu.: 0.40
## Median : 6.420 Median :0.210 Median : 0.935 Median : 1.00
## Mean : 6.598 Mean :0.217 Mean : 1.220 Mean : 1.32
## 3rd Qu.: 9.250 3rd Qu.:0.300 3rd Qu.: 1.677 3rd Qu.: 1.80
## Max. :19.670 Max. :0.650 Max. :29.774 Max. :36.40
## NA's :5608 NA's :5608 NA's :2156 NA's :2156
## x45 x46 x47 x48
## Min. :0.0000 Min. :0.0000 Min. :0.0000 Min. :0.0000
## 1st Qu.:0.2860 1st Qu.:0.2500 1st Qu.:0.1915 1st Qu.:0.0000
## Median :0.5380 Median :0.5000 Median :0.5000 Median :0.4680
## Mean :0.5405 Mean :0.5213 Mean :0.5046 Mean :0.4703
## 3rd Qu.:0.8330 3rd Qu.:0.8330 3rd Qu.:0.8180 3rd Qu.:0.8410
## Max. :1.0000 Max. :1.0000 Max. :1.0000 Max. :1.0000
## NA's :2156 NA's :2156 NA's :2156 NA's :2156
## x49 x50 x51 x52
## Min. :0.0000 Min. :0.0000 Min. :0.0000 Min. :0.0000
## 1st Qu.:0.0000 1st Qu.:0.0000 1st Qu.:0.0000 1st Qu.:0.0000
## Median :0.4540 Median :0.4610 Median :0.4570 Median :0.4570
## Mean :0.4604 Mean :0.4643 Mean :0.4618 Mean :0.4643
## 3rd Qu.:0.8220 3rd Qu.:0.8460 3rd Qu.:0.8510 3rd Qu.:0.8790
## Max. :1.0000 Max. :1.0000 Max. :1.0000 Max. :1.0000
## NA's :2156 NA's :2156 NA's :2156 NA's :2156
## x53 x54 x55 x56
## Min. :-1.6004 Min. :-1.8387 Min. :0.000 Min. :0.000
## 1st Qu.:-0.6970 1st Qu.:-0.7316 1st Qu.:0.000 1st Qu.:0.037
## Median :-0.0804 Median :-0.0120 Median :0.000 Median :0.193
## Mean :-0.0007 Mean :-0.0033 Mean :0.046 Mean :0.298
## 3rd Qu.: 0.6242 3rd Qu.: 0.8049 3rd Qu.:0.018 3rd Qu.:0.500
## Max. : 3.4738 Max. : 2.2428 Max. :1.000 Max. :1.000
## NA's :2156 NA's :2156 NA's :3874 NA's :3874
## x57 x58 x59 x60
## Min. :0.000 Min. :0.000 Min. :0.000 Min. :0.000
## 1st Qu.:0.036 1st Qu.:0.008 1st Qu.:0.000 1st Qu.:0.000
## Median :0.182 Median :0.086 Median :0.023 Median :0.000
## Mean :0.286 Mean :0.202 Mean :0.117 Mean :0.051
## 3rd Qu.:0.481 3rd Qu.:0.304 3rd Qu.:0.130 3rd Qu.:0.025
## Max. :1.000 Max. :1.000 Max. :1.000 Max. :1.000
## NA's :3874 NA's :3874 NA's :3874 NA's :3874
## x61 y
## Min. : 1.0 0: 361
## 1st Qu.: 37.0 1: 1964
## Median : 105.0 2:15774
## Mean : 161.1 3:14677
## 3rd Qu.: 220.0 4:10012
## Max. :5462.0 5: 5419
## NA's :3874 6: 1793
Видим, что часть параметров являются категорийными (зашифрованные строки), причем некоторые состоят из небольшого количества категорий, а некоторые содержат большое количество разных категорий (близкое кразмеру выборки):
Также видим, что числовые поля содержат пустые значения (NA). Однако, доля пустых полей в каждом параметре отностительно невелика (<10%), поэтому не будем откидывать поля (столбцы) из-за того, что в них содержатся пустые значения. Вместо этого попробуем заместить пустые значения на непустые.
Дальнейшие действия:
Возможно, это булевы флаги, проверим.
## x7
## x6 0 1 <NA>
## 0 300 52 0
## 1 907 48741 0
## <NA> 0 0 0
Действительно, эти переменные являются флагами и всегда имеют значение 0 или 1, не имеют значений NA. Оформим их как логические (булевы) переменные.
Посмотрим по-другому, как они связаны с Возрастной группой.
Не понятно.
Графики строятся Слишком медленно на полной обучающей выборке, поэтому далее для разведочного анализа будем использовать 0.5% данных - 1000 записей.
Наблюдения:
Определяем малоинформативные параметры, содержащие маленькое количество информации, т.е. имеющие в основном одинаковое значение.
## freqRatio percentUnique zeroVar nzv
## x1 58.09541 0.030 FALSE TRUE
## x2 34.81200 0.004 FALSE TRUE
## x3 117.14797 0.004 FALSE TRUE
## x5 50.55848 0.012 FALSE TRUE
## x6 141.04545 0.004 FALSE TRUE
## x7 40.42502 0.004 FALSE TRUE
## x22 236.19500 0.016 FALSE TRUE
Далее не будем иcпользовать эти параметры для предсказания Возрастной группы.
Проанализируем наличие коррелирующих между собой параметров. Это можно сделать только для числовых параметров?
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## -0.427600 -0.004745 0.031830 0.059190 0.089600 0.999800
Задание: решить, что с ними делать. Вероятно. стоит отказаться от их использования в дальнейшем.
Подготовим два набора данных, в которых используем разные принципы заполнения пустых значений:
Обзор тренировочного набора данных после преобразований из п.1.
## x0 x1 x2
## aa2f3cd34a:13090 16a14a2d17 :48103 06330986ed :48145
## cc73658409: 3006 bb32cb60e5 : 828 9734efb986 : 1383
## 467f9617a3: 1588 Не определено: 500 Не определено: 472
## 65d757ad7d: 1523 25e525f46c : 257
## bfff7d2d9e: 1523 9ea7cf5e79 : 149
## 80884d4ac6: 1251 16093c492a : 121
## (Other) :28019 (Other) : 42
## x3 x4 x5
## 47732ccfc1 : 419 16f4c50b5f : 975 1746600cb0 :47980
## ca63304de0 :49085 2351e56e34 : 233 4c9789a227 : 371
## Не определено: 496 8aa82606c6 : 611 4f10e28b30 : 949
## a62168d626 :19042 727084d214 : 115
## b7584c2d52 :28653 e8a1d68de6 : 13
## Не определено: 486 f81c7829f9 : 62
## Не определено: 510
## x6 x7 x8 x9
## Mode :logical Mode :logical Min. :-85.25244 f67f142e40:16313
## FALSE:352 FALSE:1207 1st Qu.: -0.21217 5624b8f759: 7189
## TRUE :49648 TRUE :48793 Median : 0.22105 fc150fd13a: 6844
## NA's :0 NA's :0 Mean : 0.00509 7e5c97705a: 6366
## 3rd Qu.: 0.52430 7b1f0ca4c1: 5527
## Max. : 3.42684 4cf172e00e: 3113
## (Other) : 4648
## x10 x11 x12
## Не определено: 4937 3d5b1dc69c : 4787 e33c63cf35 :26098
## 37eee1916c : 1074 669ea3d319 :13426 b38690945d :10372
## abf7f8e744 : 900 91bb549494 :26401 Не определено: 4978
## ff3ea89708 : 801 a68935eb94 : 475 02d630ac05 : 4089
## 2b1a0a7c41 : 784 Не определено: 4911 f178803074 : 3700
## 7bfe5c2f5a : 593 eed26e93c5 : 367
## (Other) :40911 (Other) : 396
## x13 x14 x15
## Min. : -99 6e40247e69 :22725 617a4ad3f9 :42737
## 1st Qu.: 267 d3e6da1933 : 9576 eeaf83a4de : 4896
## Median : 1817 ff390c211c : 6346 Не определено: 2367
## Mean : 4194 fe8fb80553 : 3537
## 3rd Qu.: 5000 Не определено: 2362
## Max. :776759 cc69cbe29a : 2007
## (Other) : 3447
## x16 x17 x18
## 718c61545b :39729 c26d08129a:12123 Не определено: 2346
## 4b9480aa42 : 3959 759d42196b: 5023 cac4fc8eaf : 2272
## Не определено: 2330 113669f37a: 3594 9e166b965d : 1353
## 68c96d06ae : 1755 c660b9c4b6: 2790 8ff9e52879 : 1231
## e8a040423a : 982 e84655292c: 2711 28e6a6b9f5 : 1080
## d82be38be0 : 741 d3dc404c37: 2592 969b7983fb : 1045
## (Other) : 504 (Other) :21167 (Other) :40673
## x19 x20 x21
## dd9c9e0da2 :18912 17c99905b6 :17190 Не определено: 2378
## dbcd5e9d6c :10197 60299bc448 : 4859 64ebc0a062 : 1149
## 199ce7c484 : 6634 fde72a6d5c : 4454 e3c03ca55c : 707
## 466f8951b0 : 4458 Не определено: 2339 0fc56ea1f0 : 615
## 8a6c8cef83 : 3021 9bcecf7346 : 2065 c6b4ad548f : 528
## Не определено: 2355 8945099f3b : 1860 b1407db9a8 : 489
## (Other) : 4423 (Other) :17233 (Other) :44134
## x22 x23 x24
## 9aba4d7f51 :47239 Min. : 15.23 Min. :-1.31047
## Не определено: 2363 1st Qu.: 31.12 1st Qu.:-0.59045
## 790c3ac467 : 200 Median : 36.60 Median :-0.23954
## 00b4980fc2 : 88 Mean : 35.99 Mean :-0.01514
## 881ff36a41 : 52 3rd Qu.: 40.94 3rd Qu.: 0.25146
## 577a4c1ebe : 43 Max. :135.06 Max. :34.89915
## (Other) : 15
## x25 x26 x27
## Min. :-0.81701 Min. : 0.000 Min. :-0.791959
## 1st Qu.:-0.52979 1st Qu.: 1.500 1st Qu.:-0.487757
## Median :-0.22378 Median : 2.833 Median :-0.300303
## Mean :-0.01339 Mean : 3.622 Mean :-0.004705
## 3rd Qu.: 0.21470 3rd Qu.: 4.833 3rd Qu.: 0.112424
## Max. :38.14689 Max. :59.833 Max. :28.814227
##
## x28 x29 x30 x31
## Min. :-0.90842 Min. : 0.000 Min. : 0.0 Min. :-170.42
## 1st Qu.:-0.54925 1st Qu.: 1.833 1st Qu.: 0.0 1st Qu.: 0.00
## Median :-0.26704 Median : 10.833 Median : 1.0 Median : 28.00
## Mean :-0.00806 Mean : 41.218 Mean : 558.1 Mean : 42.69
## 3rd Qu.: 0.22041 3rd Qu.: 37.833 3rd Qu.: 397.5 3rd Qu.: 61.00
## Max. :32.69988 Max. :9124.000 Max. :64305.0 Max. :1512.00
##
## x32 x33 x34 x35
## Min. :0.000 Min. : 0.00 Min. :0.000 Min. :0.0000
## 1st Qu.:0.000 1st Qu.: 6.00 1st Qu.:0.000 1st Qu.:0.0000
## Median :0.000 Median :12.00 Median :0.000 Median :0.0000
## Mean :0.375 Mean :12.75 Mean :0.421 Mean :0.2668
## 3rd Qu.:0.500 3rd Qu.:18.00 3rd Qu.:1.000 3rd Qu.:0.5000
## Max. :6.000 Max. :76.00 Max. :1.000 Max. :1.0000
##
## x36 x37 x38 x39
## Min. : 0.00 Min. : 0.00 Min. : 0.0000 Min. : 0.000
## 1st Qu.: 2.00 1st Qu.: 18.00 1st Qu.: 0.0000 1st Qu.: 1.000
## Median : 3.00 Median : 33.00 Median : 0.0000 Median : 2.000
## Mean : 3.55 Mean : 48.95 Mean : 0.7419 Mean : 2.446
## 3rd Qu.: 5.00 3rd Qu.: 59.00 3rd Qu.: 1.0000 3rd Qu.: 3.000
## Max. :75.00 Max. :1724.00 Max. :364.0000 Max. :50.000
##
## x40 x41 x42 x43
## Min. : 0.00 Min. : 0.080 Min. :0.0000 Min. : 0.000
## 1st Qu.: 20.00 1st Qu.: 4.000 1st Qu.:0.1300 1st Qu.: 0.419
## Median : 29.00 Median : 6.420 Median :0.2100 Median : 0.935
## Mean : 33.64 Mean : 6.578 Mean :0.2161 Mean : 1.208
## 3rd Qu.: 41.00 3rd Qu.: 8.830 3rd Qu.:0.2900 3rd Qu.: 1.645
## Max. :1110.00 Max. :19.670 Max. :0.6500 Max. :29.774
##
## x44 x45 x46 x47
## Min. : 0.000 Min. :0.0000 Min. :0.0000 Min. :0.0000
## 1st Qu.: 0.400 1st Qu.:0.3080 1st Qu.:0.2500 1st Qu.:0.2000
## Median : 1.000 Median :0.5380 Median :0.5000 Median :0.5000
## Mean : 1.306 Mean :0.5404 Mean :0.5204 Mean :0.5044
## 3rd Qu.: 1.800 3rd Qu.:0.8130 3rd Qu.:0.8000 3rd Qu.:0.8000
## Max. :36.400 Max. :1.0000 Max. :1.0000 Max. :1.0000
##
## x48 x49 x50 x51
## Min. :0.0000 Min. :0.0000 Min. :0.0000 Min. :0.0000
## 1st Qu.:0.0040 1st Qu.:0.0000 1st Qu.:0.0000 1st Qu.:0.0000
## Median :0.4680 Median :0.4540 Median :0.4610 Median :0.4570
## Mean :0.4702 Mean :0.4602 Mean :0.4642 Mean :0.4616
## 3rd Qu.:0.8120 3rd Qu.:0.7940 3rd Qu.:0.8130 3rd Qu.:0.8160
## Max. :1.0000 Max. :1.0000 Max. :1.0000 Max. :1.0000
##
## x52 x53 x54 x55
## Min. :0.000 Min. :-1.600355 Min. :-1.838682 Min. :0.00000
## 1st Qu.:0.000 1st Qu.:-0.663328 1st Qu.:-0.688752 1st Qu.:0.00000
## Median :0.457 Median :-0.080427 Median :-0.011984 Median :0.00000
## Mean :0.464 Mean :-0.004124 Mean :-0.003642 Mean :0.04274
## 3rd Qu.:0.841 3rd Qu.: 0.603679 3rd Qu.: 0.785963 3rd Qu.:0.01379
## Max. :1.000 Max. : 3.473768 Max. : 2.242850 Max. :1.00000
##
## x56 x57 x58 x59
## Min. :0.00000 Min. :0.00000 Min. :0.00000 Min. :0.00000
## 1st Qu.:0.04571 1st Qu.:0.04412 1st Qu.:0.01220 1st Qu.:0.00000
## Median :0.19318 Median :0.18182 Median :0.08621 Median :0.02273
## Mean :0.28992 Mean :0.27797 Mean :0.19262 Mean :0.10931
## 3rd Qu.:0.47085 3rd Qu.:0.44473 3rd Qu.:0.27612 3rd Qu.:0.11398
## Max. :1.00000 Max. :1.00000 Max. :1.00000 Max. :1.00000
##
## x60 x61 y
## Min. :0.00000 Min. : 1.0 0: 361
## 1st Qu.:0.00000 1st Qu.: 41.0 1: 1964
## Median :0.00000 Median : 105.0 2:15774
## Mean :0.04726 Mean : 156.8 3:14677
## 3rd Qu.:0.01980 3rd Qu.: 206.0 4:10012
## Max. :1.00000 Max. :5462.0 5: 5419
## 6: 1793
TODO: